package com.newviews.tcmip.dao;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.newviews.tcmip.pojo.po.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.newviews.tcmip.web.vo.etcmherb.HerbIngrVo;
import com.newviews.tcmip.web.vo.etcmpx.PxDiseaseRespVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 处方扩展信息库 Mapper 接口
 * </p>
 *
 * @author lxc
 * @since 2024-02-29
 */
@Mapper
public interface EtcmPxExMapper extends BaseMapper<EtcmPxExPo> {
    List<EtcmPxExPo> getPage( @Param(Constants.WRAPPER) QueryWrapper<EtcmPxExPo> wrapper);

    IPage<EtcmHerbIngrPo> getIngr(Page<EtcmHerbIngrPo> ipage, @Param(Constants.WRAPPER) QueryWrapper<EtcmHerbIngrPo> wrapper);
    List<EtcmIngrPo> getIngrList( @Param(Constants.WRAPPER) QueryWrapper<EtcmIngrPo> wrapper);

    IPage<EtcmIngrTargetPo> getTarget(Page ipage,@Param(Constants.WRAPPER) QueryWrapper<EtcmTargetPo> wrapper);

    IPage<EtcmExperimentalRecordsIngrPo> getExperimental(Page ipage,@Param(Constants.WRAPPER) QueryWrapper<EtcmExperimentalRecordsPo> wrapper);

    List<EtcmPxExPo> getPxList(@Param(Constants.WRAPPER) QueryWrapper<EtcmPxExPo> wrapper);

    List<EtcmPxExPo> getPxDetailsList(@Param(Constants.WRAPPER) QueryWrapper<EtcmPxExPo> wrapper);

    List<EtcmExperimentalRecordsIngrPo> getExperimentalList(@Param(Constants.WRAPPER) QueryWrapper<EtcmExperimentalRecordsPo> wrapper);

    List<EtcmExperimentalRecordsExPo> getExperimentalDetailsList(@Param(Constants.WRAPPER) QueryWrapper<EtcmExperimentalRecordsExPo> wrapper);

    List<EtcmPxExPo> getPxExList(@Param("uiTypeCode") String uiTypeCode, @Param("langCode") String langCode);

    List<EtcmUiElPo> getUIElName(@Param("uiTypeCode") String uiTypeCode, @Param("langCode") String langCode);

    List<EtcmTargetPo> getTargetList(@Param(Constants.WRAPPER) QueryWrapper<EtcmTargetPo> wrapper);

    List<EtcmHerbHerbPo> getHerbAndHerbByPxId(@Param("prescriptionId") String prescriptionId, @Param("langCode") String langCode);

    List<EtcmIngrIngrPo> getIngrAndIngrByPxId(@Param(Constants.WRAPPER) QueryWrapper<EtcmIngrIngrPo> herbWrapper);

    List<HerbIngrVo> getHerbAndIngrByPxId(@Param("prescriptionId") String prescriptionId, @Param("langCode") String langCode);

    List<EtcmHerbHerbPo> getHerbAndHerbByHerbName(@Param(Constants.WRAPPER) QueryWrapper<EtcmHerbHerbPo> herbWrapper);

    List<EtcmIngrIngrPo> getIngrAndIngrByHerbName(@Param(Constants.WRAPPER) QueryWrapper<EtcmIngrIngrPo> ingrWrapper);

    List<HerbIngrVo> getHerbAndIngrByHerbName(@Param(Constants.WRAPPER) QueryWrapper<HerbIngrVo> herbIngrWrapper);

    List<EtcmIngrDiseasePo> getIngrAndDiseaseByHerbName(@Param(Constants.WRAPPER) QueryWrapper<EtcmIngrDiseasePo> ingrAndDiseaseWrapper);

    List<EtcmHerbDiseasePo> getHerbAndDiseaseByHerbName(@Param(Constants.WRAPPER) QueryWrapper<EtcmHerbDiseasePo> herbAndDiseaseWrapper);

    List<EtcmPxHerbPo> getPxAndHerbByHerbName(@Param(Constants.WRAPPER) QueryWrapper<EtcmPxHerbPo> herbAndDiseaseWrapper);

    List<PxDiseaseRespVo> getPxAndDiseaseByHerbName(@Param(Constants.WRAPPER) QueryWrapper<PxDiseaseRespVo> herbAndDiseaseWrapper);

    List<EtcmPxExPo> getIndexPageDownload(@Param(Constants.WRAPPER) QueryWrapper<EtcmPxExPo> queryWrapper);


    List<EtcmPxExPo> getPxDownload(@Param(Constants.WRAPPER) QueryWrapper<EtcmPxPo> wrapper);

    List<EtcmIngrTargetPo> getTargetDownload(@Param(Constants.WRAPPER) QueryWrapper<EtcmTargetExPo> wrapper);



    List<EtcmHerbHerbPo> getHerbAndHerbByHerbID(@Param(Constants.WRAPPER) QueryWrapper<EtcmHerbHerbPo> herbWrapper);

    List<EtcmIngrIngrPo> getIngrAndIngrByIngrID(@Param(Constants.WRAPPER) QueryWrapper<EtcmIngrIngrPo> ingrWrapper);

    List<HerbIngrVo> getHerbAndIngrByHerbID(@Param(Constants.WRAPPER) QueryWrapper<HerbIngrVo> herbIngrWrapper);

    List<EtcmIngrPo> getIngrID(@Param(Constants.WRAPPER) QueryWrapper<EtcmIngrPo> ingrIDWrapper);

    List<EtcmPxHerbPo> getPxAndHerbByHerbID(@Param(Constants.WRAPPER) QueryWrapper<EtcmPxHerbPo> pxherbWrapper);

    List<EtcmHerbDiseasePo> getHerbAndDiseaseByHerbID(@Param(Constants.WRAPPER) QueryWrapper<EtcmHerbDiseasePo> herbAndDiseaseWrapper);

    List<EtcmIngrDiseasePo> getIngrAndDiseaseByIngrID(@Param(Constants.WRAPPER) QueryWrapper<EtcmIngrDiseasePo> ingrAndDiseaseWrapper);

    List<EtcmDiseasePo> getDiseaseName(@Param(Constants.WRAPPER) QueryWrapper<EtcmDiseasePo> diseasePoQueryWrapper);


    List<EtcmIngrExPo> getIngredientDownload(@Param(Constants.WRAPPER)QueryWrapper<EtcmHerbIngrPo> wrapper, @Param("uiTypeCode") String uiTypeCode, @Param("langCode") String langCode);
}
